package com.yxj.util;

import java.awt.*;
import java.io.*;
import java.util.Vector;

public class UDiskUtil {
    public static Vector<Vector<Object>> getRowData(){
        String commond = "reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\USBSTOR\\Enum";
        Vector<Vector<Object>> data = null;
        try {
            //获取注册表信息
            Process ps = null;
            ps = Runtime.getRuntime().exec(commond);
            ps.getOutputStream().close();
            InputStreamReader i = new InputStreamReader(ps.getInputStream());
            String line;
            BufferedReader ir = new BufferedReader(i);
            int count = 0;
            data = new Vector<Vector<Object>>();
            //将信息分离出来
            while ((line = ir.readLine()) != null) {
                if(line.contains("USB\\VID")){
                    count ++;
                    for(String s : line.split("    ")){
                        if(s.contains("USB\\VID")){
                            Vector<Object> v = new Vector<Object>();
                            for(String ss : s.split("\\\\")){
                                if(ss.contains("VID")){
                                    for(String sss : ss.split("&")){
                                        v.add(sss);
                                    }
                                }else if(ss.contains("USB")){
                                    v.add(ss+count);
                                }else{
                                    v.add(ss);
                                }
                            }
                            data.add(v);
                        }
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }
//    //U盘插入监听
//        new Thread(()->{
//        int count=10;
//        while (true){
//            if(File.listRoots().length!=count){
//                if(File.listRoots().length>count){
//                    uInfoTitle.setForeground(Color.ORANGE);
//                    uInfoTitle.setText("解密中......");
//                    try {
//                        File file = new File(File.listRoots()[File.listRoots().length-1]+"\\keyCyptoTool\\key.key");
//                        FileInputStream fileInputStream = new FileInputStream(file);
//                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
//                        String prikey = bufferedReader.readLine();
//                        System.out.println("私钥数据："+prikey);
//                        SqlLiteUtil.setPriKeyHex(prikey);
//                        //TODO 更新Jtable数据
//                        //System.out.println("数据库测试");
//                        SqlLiteUtil.sqlInit("123");
//                        Object[][] data = SqlLiteUtil.selectList();
//                        //System.out.println("数据库测试结束");
//                        tableModel.setDataVector(data,columnNames);
//                    } catch (IOException e) {
//                        e.printStackTrace();
//                    }
//                    uInfoTitle.setForeground(Color.green);
//                    uInfoTitle.setText("已检测到U盘");
//                    uState=true;
//                    table.setVisible(true);
//
//                }else if (File.listRoots().length<count){
//                    uInfoTitle.setForeground(Color.RED);
//                    uInfoTitle.setText("未检测到U盘");
//                    uState=false;
//                    SqlLiteUtil.setPriKeyHex("");
//                    table.setVisible(false);
//
//                }
//            }
//            count = File.listRoots().length;
//            try {
//                Thread.sleep(1000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//
//        }
//    }).start();

    public static void main(String[] args) throws InterruptedException {

        System.out.println(getRowData());
    }
}
